package com.njmt.cloud.msprovder.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njwt.cloud.mscommon.pojo.bo.UserBo;
import com.njwt.cloud.mscommon.pojo.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author <a href="mailto:xingxiaofeng@gtmap.cn">xingxiaofeng</a>
 * @date 2022-06-21
 * @desc UserMapper
 */
@Repository
public interface UserMapper extends BaseMapper<UserBo> {

    /**
     * 根据用户名(或手机号或邮箱)查询用户
     *
     * @param username 用户名(或手机号或邮箱)
     * @return User
     */
    UserBo findByUserName(@Param(value = "username") String username);

    /**
     * 根据用户id查询用户
     *
     * @param userId 用户id
     * @return User
     */
    UserBo findByUserId(@Param(value = "userId") String userId);

    /**
     * 根据用户名称查询所有相同用户名的用户
     *
     * @param username 用户名
     * @return List<UserVo>
     */
    List<UserVo> findUserVoList(@Param("username") String username);

    /**
     * 条件分页查询
     *
     * @param page  分页
     * @param param 条件参数
     * @return List<UserVo>
     */
    List<UserVo> findUserList(Page page, @Param("param") Map param);
}

